#include <vector>
using namespace std;
bool canJump(vector<int> &nums) {
  // 当前可到达的最大位置
  int idx = 0;
  for (int i = 0; i < nums.size(); i++) {
    idx = max(idx, i + nums[i]);
    if (idx >= nums.size() - 1)
      return true;
    if (nums[i] == 0 && idx <= i) {
      return false;
    }
  }
  return idx >= nums.size() - 1;
}